//
//  CZDBManager.swift
//  Weibo24
//
//  Created by apple on 16/3/10.
//  Copyright © 2016年 apple. All rights reserved.
//

import UIKit
import FMDB

//创建了一个数据存储工具类
class CZDBManager: NSObject {

    //创建一个queue
    var queue: FMDatabaseQueue?
    
    var db: FMDatabase?
    // 创建一个单例来处理
    static let shareInstance: CZDBManager = CZDBManager()
    
    // 创建一个数据库
    func openDB(){
    
        let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last!
        
        let dbPath = (path as NSString).stringByAppendingPathComponent("status.db")
        
        // 实例化 -- 提供数据库路径
        queue = FMDatabaseQueue(path: dbPath)
        
        //创建表格
        createTabel()
    }
    
    private func createTabel(){
    
        // sql语句需要修改, 双引号 -> 单引号
        
        let sql = "CREATE TABLE 'T_status' (" +
        "'status' text," +
        "'statusid' INTEGER NOT NULL," +
        "'userid' INTEGER," +
        "PRIMARY KEY('statusid'))"
        
        // 一定要注意 打印一下sql语句
        print(sql) // CREATE TABLE 'T_status' ('status' text,'statusid' INTEGER NOT NULL,'userid' INTEGER,PRIMARY KEY('statusid'))
        // CREATE TABLE 'T_status' ('status' text,'statusid INTEGER NOT NULL,'userid' INTEGER,PRIMARY KEY('statusid'))
        
        //运行sql语句
        queue?.inDatabase({ (db) -> Void in
            // executeStatements 可以运行多条语句
//            db.executeStatements(<#T##sql: String!##String!#>)
            
            // executeUpdate运行一条语句-- 建议用一条
            /*
                第一个参数: sql语句
                第二个参数: 参入的参数
            */
           db.executeUpdate(sql, withArgumentsInArray: nil)
        })
        
        
    }
    
    /*
        事务 -- 当我们插入或者删除数据过程中,如果出现一些状况,可以把进行中的数据库的操作,回滚到之前
    */
}
